Data compression occurs in a number of contexts. It is very commonly used in communications and computer networking to store, transmit, and reproduce information efficiently. It finds particular application in the encoding of images, audio and video. Video presents a significant challenge to data compression because of the large amount of data required for each video frame and the speed with which encoding and decoding often needs to occur. The current state-of-the-art for video encoding is the ITU-T H.264/AVC video coding standard. It defines a number of different profiles for different applications, including the Main profile, Baseline profile and others. A next-generation video encoding standard is currently under development through a joint initiative of MPEG-ITU: High Efficiency Video Coding (HEVC).
There are a number of standards for encoding/decoding images and videos, including H.264, that use block-based coding processes. In these processes, the image or frame is divided into blocks, typically 4×4 or 8×8, and the blocks are spectrally transformed into coefficients, quantized, and entropy encoded. In many cases, the data being transformed is not the actual pixel data, but is residual data following a prediction operation. Predictions can be intra-frame, i.e. block-to-block within the frame/image, or inter-frame, i.e. between frames (also called motion prediction). It is expected that HEVC will also have these features.
Some of the standards provide for scalable multi-layer data compression. For example, H.264/SVC (Scalable Video Coding) defines the format for encoding video in multiple layers such that one or more parts of the resulting bitstream (i.e. a sub stream) provide a valid decidable lower resolution version of the video data. Different layers may be scaled spatially, temporally, or by a quality measure. By way of illustration, H.264/SVC provides the capability of encoding a base layer at a lower spatial resolution (i.e. a downscaled version of the video) and an enhancement layer at a higher spatial resolution. More than two layers may be present in some bitstreams. Particular devices or applications may want to use only the base layer of a scalable encoded video, perhaps due to a screen size limitation, bandwidth limitation, latency requirements, etc. Scalable video coding finds particular application in video conferencing, video streaming, mobile video, and other such applications.
A problem with scalable video coding is that the rate-distortion performance of the enhancement layer usually falls short of what would otherwise be achieved through regular H.264/AVC encoding. Attempts to improve SVC performance often trade-off base layer performance for improved enhancement layer rate-distortion performance.
It would be advantageous to provide for further improved encoders and methods or processes for scalable encoding.
Similar reference numerals may have been used in different figures to denote similar components.